package edu.neu.swc.cloud.service;

import edu.neu.swc.cloud.domain.Product;

import java.util.List;
import java.util.Map;

public interface ProductService {
    /**
     * 查询所有产品信息
     * @return
     */
    List<Product> findAll();

    /**
     * 添加产品信息
     * @param product
     */
    void addProduct(Product product);

    /**
     * 依据ID查找产品信息
     * @param pro_id
     * @return
     */
    Product findProById(int pro_id);

    /**
     * 依据ID删除产品信息
     * @param pro_id
     */
    void deleteProById(int pro_id);

    /**
     * 更新产品信息
     * @param product
     */
    void updatePro(Product product);

    /**
     * 分页，多字段查询产品信息
     * @param start
     * @param rows
     * @param condition
     * @return
     */
    List<Product> findProByPage(int start, int rows, Map<String,String[]> condition);

    /**
     * 多字段查询产品条目数
     * @param condition
     * @return
     */
    int findTotalCount(Map<String,String[]> condition);

    /**
     * 多字段查询产品信息
     * @param product
     * @return
     */
    List<Product> findProByCon(Product product);

    /**
     * 依据条件获取产品信息数目
     * @param pro_name
     * @return
     */
    int getProductCounts(String pro_name);

    /**
     * 依据条件获取产品信息
     * @param pro_name
     * @param pageStart
     * @param pageSize
     * @return
     */
    List<Product> findProductByQuery(String pro_name, int pageStart, int pageSize);

    /**
     * 依据产品名称找到产品
     * @param pro_name
     * @return
     */
    Product findProductByCode(String pro_name);
}
